Область применения: используя описание ниже у меня получилось принимать звонки и парсить DTMF коды. Осторожно в текстах ниже может содержаться неопределенное число грамматических ошибок, ранимым, в этом плане людям лучше избежать чтения.
CMX это многостандартный модем для использования EPOS терминалов и телефонно-ориентированных систем. Высокоинтегрированный одночиповый модем обеспечивает функции необходимые для поддержки:
ITU V.32 bi
V.22 bis
V.22
V.21
Bell 202
Bell 103
Под контролем внутреннего мастера EPOS и других мастер-слейв протоколов.
В комплект входит высококачественный декодер DTMF с отличной устойчивостью к фальсификации голоса и стандартный кодер DTMF. В качестве альтернативы устройство может передавать и обнаруживать запрограммированные пользователем однотональные и двухтональные сигналы, сигналы о ходе выполнения вызова или сигналы вызова и ответа модема.
ПО CMX контролирует выходное управление для контроля «рычага» телефона и постоянно следить за входящим звонком находясь в спящем режиме. Когда линейное напряжение меняется или обнаружен звонок, плата обнаружения звонка выдает прерывание, которое может пробудить мастер контроллер.
Линейный канал может быть односторонним или разносторонним и усилитель линейного выхода является совмещенным напрямую управляемым внутри низкосопротивляемым трансформатором или опто паре. ..
IP = Input
OP = Output
TS = Выход в третьем состянии
PWR = Power
NC = No Connection
|
|
|
|
|
1 |
REPLY DATA |
TS |
|
Выход последовательных данных C-BUS идущих на хост. Выход с высоким сопротивлением когда не посылаются данные |
2 |
RDRVN |
OP |
|
Реле, с помощью которого подключают телефонную линию к микросхеме. Подтягивается к земле если активирован, к питанию - когда не активен. Сразу все понятно, если грянуть Figure 4a 2-Wire Line Interface Circuit |
4 |
SERIAL CLOCK |
IP |
|
SPI |
5 |
COMMAND DATA |
IP |
|
|
6 |
CSN |
IP |
|
|
8 |
RXA |
IP |
|
Входящая линия с двухпроводной телефонки.
|
9 |
RXBN |
IP |
|
|
10 |
RXAN |
IP |
|
|
11 |
RXAFB |
|
|
|
13 |
VBIAS |
|
Внутренне генерируемое напряжение смещения приблизительно AVDD / 2, за исключением случаев, когда устройство находится в режиме "Энергосбережения’, когда VBIAS будет разряжаться в AVSS. Должен быть отсоединен от AVSS конденсатором, установленным рядом с выводами устройства. |
Генерирует напряжение смещения |
14 |
TXAN |
|
|
Исходящая линия к той же двухпроводной телефонке подсоединяется |
15 |
TXA |
|
|
|
17 |
RDN |
|
|
Мониторит входящий звонок |
20 |
VDEC |
|
|
Генерирует напряжение |
|
XTAL/CLOCK |
|
|
Входы для подключения внешнего генератора |
|
XTALN |
|
|
|
|
IRQN |
|
|
Выход сигнала прерывания. Прерывания настраиваются. |
|
|
|
|
Далее несколько ног к питалову относящихся. |
|
|
|
|
|
|
|
|
|
|
Плата линейный интерфейс нужна для обеспечения изоляции постоянного тока и завершения линии. CMX подсоединен к линии когда реле линии замкнуто. Реле может управляться выходом RDRVN. Как показано на 4a. Контроль выходного уровня ноги RDRVN описан в 6.2 на рис. 4a и рис. 4b находятся описание работы и не должно быть использовано в производственном дизайне. Правильный дизайн будет описан отдельно.
4a трактовка. Нога RDRVN подключает реле, которое подключает TXA и TXAN, которые через транс связаны с той самой двухпроводной «телефонной линией». Подключение линии идет до «развязывающего»транса, т.е. рвется внешняя цепь линии, но еще дальше стоит.
Уровень
сигнала линии передачи определяется колебанием напряжения между
выводами TXA и TXAN, меньше 6 дБ из-за резистора R13 на выходе линии
и меньше потерь в трансформаторе связи линии. Учитывая потерю 1 дБ в
трансформаторе, с регистром режима передачи, установленным для
усиления управления уровнем передачи 0 дБ,
номинальные уровни
линии передачи будут:
В направлении приема, обнаружение сигнала
В направлении приема пороги обнаружения сигнала в CMX869B пропорциональны AVDD и зависят от настройки усиления управления усилением Rx (Rx Gain Contro) в регистре режима Rx. На уровень сигнала в CMX869B влияют потери трансформатора линейной связи и значения R11 и R12 на рисунке 4a.
Значение R11 должно быть выбрано так что бы принимаемый сигнал RXAFB 3.6dB был меньше чем на двухпроводной линии. Например, если потери трансформатора составляют 1 дБ, то R11 должен составлять 130 Ком. Значение R14 (15 Ком) выбрано для применения приблизительно 20 дБ дополнительного усиления, когда это требуется для идентификации линии вызывающего абонента типа 1.
Вход RXBN можно выбрать, установив бит 14 Общего управляющего регистра равным 1, который внутренне соединяет RXBN с RXAN. С компонентами, показанными на рисунках 4a и 4b, это добавит примерно 20 дБ к коэффициенту усиления Rx, подключив R14 параллельно с R11. Это облегчает обнаружение определенных сигналов во время подключения, например, которые могут потребоваться для приема идентификации линии вызывающего абонента типа 1. Для 2-проводного линейного интерфейса, показанного на рисунке 4a, конденсатор C12 необходим для обеспечения канала переменного тока к устройству, когда реле разомкнуто. Если это средство не требуется, R14 и C12 можно опустить.
CMX может работать как полнодуплексный QAM или DSPK автомодем, используя следующие типы модуляций:
V.32 bis
V.32
V.22 bis
V.22
Он также может быть настроен на работу под управлением хоста последовательности соединений как ручной модем, в следующих схемах модуляции с низкой скоростью QAM, DSPK и FSK (Частотная манипуляция):
V.22 bis
V.22
V.21 or Bell 103 (300/300bps duplex FSK)
V.23 (1200/75 bps FSK)
Bell 202 (1200/150 bps FSK)
Передающая схема может работать в одном из таких режимов:
DTMF передачи
Передачи одиночных тонов (из диапазона модемных вызовов, ответов и других тональных частот)
Исползуя тоны запрограммированные пользователем
Отключен
Приемная схема:
Определение DTMF
Определение 2100Hz and 2225Hz ответных тонов.
Обнаружение сигнала о ходе звонка
Обнаружение пользовательскизапроганых тонов
Отключен
Схемы обнаружения
звонка, тонального декодера и модема FSK могут быть сконфигурированы
для идентификации вызывающего абонента типа 1 (на связи). Этот объект
является предметом отдельного примечания к заявке.
Когда CMX869B не используется, он может быть переведен в режим энергосбережения, который отключает все схемы, кроме встроенного регулятора, интерфейса C-ШИНЫ и кольцевого детектора.
В режиме обнаружения сигналов Rx принятый сигнал после прохождения через блок управления усилением Rx подается на детектор сигналов DTMF / Тонов / Хода вызова /Ответа. Пользователь может выбрать любой из четырех отдельных детекторов:
Определитель стандартных DTMF сигналов и идентификатор передаваемого символа в регистре статуса. Правильный DTMF сигнал будет с выставленным битом 5 в регистре статуса, так долго в единице, как долго звучит сигнал.
Программируемый тон парного детектора включает два раздельных тоновых детектора. Первый выставит бит 6 регистра статуса на протяжении пока определяется сигнал. Второй выставит 7 и 10 биты регистра статуса пока оба тона будут определяться.
Детектор прогресса звонка меряет размах сигнала на выходе 275Hz – 665Hz полосы пропускания фильтра и выставляет 10 бит регистра статуса, когда уровень измеряемого сигнала превышает установленный порог. Реакция фильтра хода выполнения вызова, включая влияние внешних компонентов на рисунках 4a и 4b, показана на рисунке 6.
Детектор «хода выполнения вызова» измеряет амплитуду сигнала на выходе полосового фильтра 275 Гц - 665 Гц и устанавливает бит 10 регистра состояния в 1, когда уровень сигнала превышает пороговое значение измерения. Реакция фильтра хода выполнения вызова, включая влияние внешних компонентов рисунков 4a и 4b, показана на рисунке 6.
Детектор тона ответа измеряет как амплитуду, так и частоту принятого сигнала и устанавливает бит 6 или бит 7 Регистра состояния в значение "1", когда принимается действительный сигнал 2225 Гц или 2100 Гц.
Этот блок обеспечивает передачу данных и контроль или информацию статуса между внутренними регистрами CMX и хостом. Каждая транзакция содержит
одиночный байт Адресного Регистра (RA) посылаемый из хоста
один или несколько байт следуют за RA посланными из хоста
эта команда отправляется для чтения или записи соотв. Регистров CMX.
Данные посылаемые из хоста в линию Команд Данных (CD) синхронизируются внутри CMX по нарастающему фронту Serial Clock (SC).
Ответные данные, посылаемые из CMX в хост, являются валидными когда SC = H.
Линия CSN должна удерживаться в
CSN = L в течении передачи данных.
CSN = H между передачами.
C-BUS интерфейс совместим с самым общим последовательным интерфейсами хоста и может также быть легко реализуемым при помощи ног МК общего назначения с помощью простой процедуры ПО. На рис. 13 подробности требуемых таймаутов.
В CMX используются такие C-BUS адреса и регистры.
|
|
|
|
General Reset Command (address only, no data) |
|
|
Address $01 |
General Control Register, |
16-bit write only. |
|
Address $E0 |
Transmit Mode Register, |
16-bit write-only. |
|
Address $E1 |
Receive Mode Register, |
16-bit write-only. |
|
Address $E2 |
Transmit Data Register, |
8 or 16-bit write only. |
|
Address $E3 |
Alternate Transmit Data Register, |
8-bit write only. |
|
Address $E4 |
Receive Data Register, |
8 or 16-bit read-only. |
|
Address $E5 |
Status Register, |
16-bit read-only. |
|
Address $E6 |
Programming Register, |
16-bit write-only. |
|
Address $E8 |
QAM Modem Command Register, |
16-bit write-only. |
|
Address $EA |
QAM Modem Status Register, |
16-bit read-only. |
|
Address $EB |
|
|
|
|
Заметим: C-BUS адреса $E7, $E9, $EC, $ED, $EE and $EF выделены для тестирования продукта и не доступны в нормальной работе.
Прерывание работы.
В CMX будет прерывание при ошибке, ошибка отдается по линии IRQN = L, когда бит 15 IRQ статусного регистра SR и бит IRQ Enable в GCR(0xE0) оба выставлены. Смотри раздел 6.8.
Рисунок 8. Обязательно смотреть для понимания. Расписаны сигналы на линиях данных.
Эта команда сбрасывает устройство, чистит все биты GCR, TMR и RMR а также биты 15 и 13 SR и переводит устройство в режим энергосбережения.
Какие-то неинтересные подробности…
Этот регистр управляет основными свойствами CMX, такими как энергосбережение и режим петли, IRQ маска и релейный выход.
Все биты этого регистра очищены в ноль с помощью GR команды. Обратите внимание, что флаг режима «2 символа» (2C) считывается только после сброса или включения питания.
Биты |
|
|
|
|
15 |
Equ |
Fixed Compromise Equalisers |
0 – включить эквалайзер, 1 - отклюить |
|
14 |
Hi Gain |
Select high input gain |
0 — открытая плата, 1 — интегрированное соединение |
|
13 |
Pat det |
Select Pattern Detect mode |
0 — шаблон режима определения совместимый с CMX (умолч.) 1 — HDLC паттерн |
|
12 |
0 |
|
Всегда в нуле |
|
11 |
LB |
Analogue Loopback test mode |
0 — нет обратной связи (обычно), 1 — режим локальной обратной связи включен |
Этот бит управляет тестовым режимом аналоговой обратной связи. В тестовом режиме обратной связи Регистры режима передачи и приема должны быть установлены на один и тот же тип модема, скорость передачи в бодах и битах. Реле линейного интерфейса должно быть разомкнуто, так как тестовая передача, которая подается обратно в канал Rx, появится на выводах Tx. Аналоговая обратная связь недоступна в режимах QAM Auto mode m. |
10 |
2C |
Modem '2-Character' mode |
0 — 1-но символьный режим, 1 — 2-х символьный режим, |
|
9 |
Rly |
Relay Drive |
0 — подтяжка к vdd, 1 — подтяжка к vss |
Контроль выхода RDRVN |
8 |
Pwr |
Power-up |
0 – в режиме энерго сбережения. все схемы отключены за исключением:
1 — нормальный режим — полное питание |
Это бит контроля питания внутренней схемы CMX включающей:
|
7 |
Rst |
|
0 — нормальн, 1 — внутренне подтянут в сброс |
|
6 |
Irqnen |
|
Установка этого бита равным 1 включает вывод IRQN. |
|
5 |
IRQ Mask Bits |
|
Эти биты влияют на работу бита IRQ Регистра состояния, как описано в разделе 6.8 |
Эти биты влияют на работу IRQ бита регистра статуса как описано в 6.8 |
4 |
|
|
|
|
3 |
|
|
|
|
2 |
|
|
|
|
1 |
|
|
|
|
0 |
|
|
|
При
первой подаче
питания на устройство необходимо выполнить следующую процедуру
включения питания для обеспечения
правильной работы:
Питание подается на устройство..
Выполните общую команду сброса.
Запишите в регистр общего управления (адрес $E0), установив бит включения питания (b8) и бит сброса (b7) равными "1" – оставьте в этом состоянии минимум на 20 мс – требуется, чтобы кристалл изначально работал в течение этого времени, чтобы перевести внутреннюю логику в определенное состояние. Теперь устройство подключено к источнику питания ядро и VBIAS работает, но в остальном не выполняет никаких функций передачи или приема.
Теперь устройство готово к программированию когда это потребуется. Например:
Может быть выдана общая команда сброса для очистки всех регистров и, как следствия, перехода в спящий режим.
Бит сброса в Общем управляющем регистре может быть установлен в "0" как часть процедуры для программирования всех соответствующих регистров для настройки определенного режима работы.
Когда устройство переключается из режима энергосбережения в режим нормальной работы путем установки бита «включения питания» на "1", бит «сброса» также должен быть установлен на "1" и должен удерживаться на "1" в течение примерно 20 мс, пока внутренние цепи, генератор Xtal и VBIAS стабилизируются перед началом использования передатчика или приемника.
Это регистр управления CMX типа и уровня передаваемого сигнала.
Настраивается
Режим передачи
Уровень в dB
Частота тона защиты.
Тип шифрования.
Формат данных модемных.
Данные модема и стоп битов.
Источник данных
DTMF режим dB
DTMF тоны Hz
Аналогично 6.3, только на прием.
Это регистр контроля типа и уровня принимаемого сигнала.
Все биты этого регистра чистятся командой общего сброса когда бит 7 общего контрольного регистра = 1.
Регистр работает в трех режимах
Модем
DTMF тоны определение.
Отключен.
В зависимости от режима, группы бит полностью или частично меняют свою специализацию. Режим задается группой бит 15..12
Команды управления ?встроенного модема
Tx Data Register: 8 or 16-bit write-only. C-BUS addresses $E3 and $E4
Это регистр может быть установлен в 8-ти или 16-битный режим. Эту «настройку» не нужно менять после начала передачи данных.
Одно-символьный режим.
[Байт для передачи]
Двухсимвольный режим.
[первый байт для передачи] [второй байт для передачи]
В этот регистр следует записывать только тогда, когда бит готовности данных Tx регистра состояния установлен в 1.
В синхронном режиме и режиме передачи данных HDLC Tx передаются все 8 бит байта, причем первым передается бит 0 каждого байта.
В режимах Tx Start-Stop указанное количество битов данных будет взято из байта в регистре данных Tx (b0 байта первым). Стартовый бит, бит четности (если требуется) и стоповый бит(ы) будут добавлены автоматически.
Rx Data Register: 8 or 16-bit read-only. C-BUS address $E5
Аналогично 6.6, только на прием.
Status Register: 16-bit read-only. C-BUS address $E6
Общие для всех режимов флаги |
|
|
||||||||||||
Биты |
IRQ бит |
|
|
|
|
|
||||||||
15 |
6 |
IRQ |
|
Произошло прерывание |
|
|
||||||||
14 |
5 |
RD |
Set to 1 on Ring Detect |
Входящий звонок |
|
|
||||||||
13 |
4 |
PF |
Programming Flag bit. See 6.10 |
Программный флаг. Логика связана с режимом программирования. Оно показывает когда можно программировать. |
|
|
||||||||
12 |
3 |
TxD |
Set to 1 on Tx data ready. Cleared by write to Tx Data Register |
Регистр передачи пуст (готов к загрузке). Очищается записью в регистр чего-нибудь |
|
|
||||||||
11 |
3 |
TxU |
Set to 1 on Tx data underflow. Cleared by write to Tx Data Register |
Регистр передачи перегружен. Очищается записью в регистр чего-нибудь. |
|
|
||||||||
Далее зависит от режима |
|
|||||||||||||
|
IRQ бит |
Режим определения тонов / Прогресса вызова |
Режим ручного модема General Control Register b13 = 0 (CMX869A compatible pattern detect mode) |
Режим ручного модема General Control Register b13 = 1 (Enhanced HDLC pattern detect mode) |
|
|||||||||
10 |
2 |
Выставится в 1 когда энергию нашли в полосе п вызова или оба программных тона обнаружены |
10 |
1 — пока обнаружена энергия в Rx modem signal band |
10 |
|
1 — пока обнаружена энергия в Rx modem signal band |
|
||||||
9 |
1 |
0 |
9 |
1- пока есть последовательности 10101 или11001100 «точечный шаблон» |
9 |
|
Скремблирование.. |
|
||||||
8 |
1 |
0 |
8 |
Б8=1, Б7=1 СКР.ВЫКЛ — нет, СКР.ВКЛ скрамблер 1s Б8=1, Б7=0 СКР.ВЫКЛ — 0s, СКР.ВКЛ 0s Б8=0, Б7=1 СКР.ВЫКЛ — 1s, СКР.ВКЛ скрамблер 1s Б8=0, Б7=0 СКР.ВЫКЛ — нет, СКР.ВКЛ нет |
8 |
|
|
|||||||
7 |
1 |
1 — 2100Hz ответный тон или второй программный тон обнаружен |
7 |
7 |
|
|
||||||||
6 |
0 |
1 — 2225Hz ответный тон или первый программный тон обнаружен |
6 |
1 — данные в регистре Rx готовы, сброс чтением DR |
|
|
||||||||
5 |
0 |
1 — когда DTMF код обнаружен |
5 |
1 — данные в регистре Rx перегружены, сброс чтением DR |
|
|
||||||||
4 |
|
0 |
4 |
1 — Rx ошибка фрейма |
|
|
||||||||
3 |
|
DTMF код биты 3210 |
3 |
Start-Stop условие: 1 есть бит четности |
|
|
||||||||
2 |
|
2 |
?Start-Stop условие: 1 есть бит четности |
|
|
|||||||||
1 |
|
1 |
1 — есть данные в DR регистре 2 символа (двусимвольный режим) |
|
|
|||||||||
0 |
|
0 |
?FSK frequency demodulator output (0 in QAM modes) |
|
|
Значение статусного регистра зависит от режима приема
Когда дешифратор включен определяется незашифрованная длительность 1s будет подавлять последовательности шифрованного 1s определителя.
Колонка IRQ битовая маски показывает соответствующий битовой маске в «общем контрольном регистре». Переход от 0 к 1 в каком то из битов 14..5 регистра статуса будет вызывать установку 15 бита IRQ, если относящийся к нему бит маски IRQ выставлен. Бит IRQ очистится чтением статусного регистра или общим сбросом или выставлением 7 – 8 битов общего контрольного регистра.
Выходная нога IRQN подтянется книзу когда IRQ бит статуса и IRQNEN бит 6 общего контрольного регистра оба выставятся в 1.
Работа FSK демодулятора данных и детектора шаблонов внутри CMX не зависит от состояния наличия сигнала в Rx .
QAM Automodem Status Register: 16-bit read-only. C-BUS address $EB
Programming Register : 16-bit write-only. C-BUS address $E8
Этот регистр используется для программирования передачи и приема программных пар тонов с помощью записи подходящих значений в RAM расположенный внутри CMX. Заметим, что этот RAM очищается переходом в спящий режим или сбросом.
Регистр можно писать только когда флаг b13 статуса = 1. Событие записи программного регистра чистит b13. Когда программирование завершено (где-то 150 us) CMX выставит бит снова в единичку.
Когда программируются пары тонов передачи и приема, не меняются режимы передачи или приема пока не будет завершено программирование и Programming Flag bit не вернется в 1.
Документ: "CMX869A Full Duplex Call Set-Up.pdf"
На рисунке 1 выше представлена адаптация V.22-бис описание «рукопожатия» из тома VIII - Брошюра VIII.1 из Blue Book series published by the ITU (formerly CCITT) November 1988.. Действия, выполняемые вызывающим и отвечающим модемами, проиллюстрированы ниже блок-схемами и строками команд C-BUS для реализации на CMX868.
Модем может подключиться к линии, установив выход RDRVN (вывод CMX869A 2) на Vss (b9 = 1 Low / gnd) для управления реле или полупроводниковым переключателем. Уровень RDRVN при повешенной трубке должен быть Vdd (Hi), иначе при первоначальном включении или сбросе могут произойти ложные занятия линии.
Тональный сигнал ответа станции будет присутствовать обычно через 300 мсек после поднятия трубки. При наборе номера без обнаружения тонального сигнала готовности к набору следует сделать паузу не менее 2,7 с (макс. 8 с). Если тональный сигнал ответа станции не обнаружен в течение 5 секунд после снятия трубки, модем должен быть возвращен в состояние положенной трубки.
Цифры DTMF обычно должны иметь длину 100 мс с перерывами в 100 мс между ними.
Диаграммы предназначены для общего руководства по использованию регистров. Они не показывают программные функции тайм-аута, которые позволяют избежать блокировки в определенных циклах. Обработка прерываний (включение, обслуживание и отключение) полностью не показана, поскольку это параметры, которые могут быть реализованы для конкретного проекта. Защитные тона также не включены.
В коммутируемой телефонной сети общего пользования (PSTN) вызывающий модем должен передавать в нижнем диапазоне, а принимать в верхнем диапазоне.
Обработчик ошибок не включен, поскольку этот аспект зависит от реализации.
Следующие биты в регистрах режима передачи ($ E1) и режима приема ($ E2) должны быть установлены в соответствии с требованиями схемы и функции: -
Tx Mode b11…b9 = Tx gain
Tx Mode b8…b7 = 550Hz/1800Hz Guard Tone enabling
Tx Mode b4…b0 = USART mode and format
Rx Mode b11…b9 = Rx gain
Rx Mode b5…b0 = USART mode and format
Для ясности на рисунке 1 не показан альтернативный маршрут, если только один модем может поддерживать соединение V.22bis. Однако на следующих диаграммах показано, какие шаги необходимо предпринять в этом случае, чтобы установить Подключение V.22.
Некоторые моменты, показанные на чертеже на рис. 1, относятся к коммутации цепи на внешнем порте хоста. Например, точка с надписью «Обнаружить 32 последовательных ЕДИНИЦЫ со скоростью 2400 бит / с» - это точка, в которой детектор принятого линейного сигнала канала данных (т. е. вывод Data Carrier Detect на порту RS-232, также называемый «схемой 109» в стандарте V.22bis) может быть переключен.
Состояния регистров битов на блок-схемах предполагают, что была подана команда общего сброса ($ 01) и до входа в процедуры вызова и ответа была выполнена обычная процедура запуска. Каждое состояние во время этих двух процедур перечисляет только изменения битов регистра, которые требуются для перехода из предыдущего состояния.